import { login, userProfile,photoProfile } from "@/api/user"
import { getToken, setToken } from "@/utils/auth"

export default {
  namespaced: true,
  state: () => {
    return {
      // 保存token
      // 初始值: 如果本地有就使用，没有就是''
      token: getToken() || '',
      //用户信息
      userInfo:{}
    }
  },
  mutations: {
    //设置userInfo
    setUserInfo(state,newUserInfo){
      state.userInfo = newUserInfo
    }
    ,
    // 定义mutation去修改token
    // mutation的名字(state, newToken){}
    setToken(state, newToken){
      // 1. 保存token到state
      state.token = newToken
      // 2. 调用封装好的函数，做持久化
      setToken(newToken)
    }
  },
  actions: {
    // data 用户名密码
    async userLogin(context, data){
      console.log(3)
      // console.log('login', context, data)
      const res = await login(data)
      console.log(res.data)
      context.commit('setToken', res.data)
    }
    ,
    //获取用户滴信息
    async getUserProfile(context){
      const res = await userProfile()
      //调用mutation保存到state
      //合并用户信息
      console.log(res);
      const newres = await photoProfile(res.data.userId)
      const obj = {...res.data,...newres.data}
      context.commit('setUserInfo',obj)
      console.log('getUserProfile',res);
      return res
    }
    ,
    //获取
    logout(context){
      context.commit('setToken','')
      context.commit('setUserInfo',{})
    }
  },
  getter: {}
}